#include "RsGisLibCMDMorphology.h"

RsGisLibCMDMorphology::RsGisLibCMDMorphology(RsgisPortal* Port)
{
	ClientPort = Port;

	rsgisMorCreateCirOp = NULL;
	rsgisMorImageDilate = NULL;
	rsgisMorImageErode = NULL;
	rsgisMorImageGradiant = NULL;
	rsgisMorImageDilateComOut = NULL;
	rsgisMorImageErodeComOut = NULL;
	rsgisMorImageGradiantComOut = NULL;
	rsgisMorImageLocalMinima = NULL;
	rsgisMorImageLocalMinimaComOut = NULL;
	rsgisMorImageOpening = NULL;
	rsgisMorImageClosing = NULL;
	rsgisMorImageBlackTopHat = NULL;
	rsgisMorImageWhiteTopHat = NULL;
}

RsGisLibCMDMorphology::~RsGisLibCMDMorphology()
{
	if (rsgisMorCreateCirOp)
		delete(rsgisMorCreateCirOp);
	if (rsgisMorImageDilate)
		delete(rsgisMorImageDilate);
	if (rsgisMorImageErode)
		delete(rsgisMorImageErode);
	if (rsgisMorImageGradiant)
		delete(rsgisMorImageGradiant);
	if (rsgisMorImageDilateComOut)
		delete(rsgisMorImageDilateComOut);
	if (rsgisMorImageErodeComOut)
		delete(rsgisMorImageErodeComOut);
	if (rsgisMorImageGradiantComOut)
		delete(rsgisMorImageGradiantComOut);
	if (rsgisMorImageLocalMinima)
		delete(rsgisMorImageLocalMinima);
	if (rsgisMorImageLocalMinimaComOut)
		delete(rsgisMorImageLocalMinimaComOut);
	if (rsgisMorImageOpening)
		delete(rsgisMorImageOpening);
	if (rsgisMorImageClosing)
		delete(rsgisMorImageClosing);
	if (rsgisMorImageBlackTopHat)
		delete(rsgisMorImageBlackTopHat);
	if (rsgisMorImageWhiteTopHat)
		delete(rsgisMorImageWhiteTopHat);

	rsgisMorCreateCirOp = NULL;
	rsgisMorImageDilate = NULL;
	rsgisMorImageErode = NULL;
	rsgisMorImageGradiant = NULL;
	rsgisMorImageDilateComOut = NULL;
	rsgisMorImageErodeComOut = NULL;
	rsgisMorImageGradiantComOut = NULL;
	rsgisMorImageLocalMinima = NULL;
	rsgisMorImageLocalMinimaComOut = NULL;
	rsgisMorImageOpening = NULL;
	rsgisMorImageClosing = NULL;
	rsgisMorImageBlackTopHat = NULL;
	rsgisMorImageWhiteTopHat = NULL;
}

void RsGisLibCMDMorphology::MorCreateCirOp()
{
	rsgisMorCreateCirOp = new RsGisLibMorCreateCirOp(ClientPort, NULL);
	rsgisMorCreateCirOp->show();
}

void RsGisLibCMDMorphology::MorImageDilate()
{
	rsgisMorImageDilate = new RsGisLibMorImageDilate(ClientPort, NULL);
	rsgisMorImageDilate->show();
}

void RsGisLibCMDMorphology::MorImageErode()
{
	rsgisMorImageErode = new RsGisLibMorImageErode(ClientPort, NULL);
	rsgisMorImageErode->show();
}

void RsGisLibCMDMorphology::MorImageGradiant()
{
	rsgisMorImageGradiant = new RsGisLibMorImageGradiant(ClientPort, NULL);
	rsgisMorImageGradiant->show();
}

void RsGisLibCMDMorphology::MorImageDilateComOut()
{
	rsgisMorImageDilateComOut = new RsGisLibMorImageDilateComOut(ClientPort, NULL);
	rsgisMorImageDilateComOut->show();
}

void RsGisLibCMDMorphology::MorImageErodeComOut()
{
	rsgisMorImageErodeComOut = new RsGisLibMorImageErodeComOut(ClientPort, NULL);
	rsgisMorImageErodeComOut->show();
}

void RsGisLibCMDMorphology::MorImageGradiantComOut()
{
	rsgisMorImageGradiantComOut = new RsGisLibMorImageGradiantComOut(ClientPort, NULL);
	rsgisMorImageGradiantComOut->show();
}

void RsGisLibCMDMorphology::MorImageLocalMinima()
{
	rsgisMorImageLocalMinima = new RsGisLibMorImageLocalMinima(ClientPort, NULL);
	rsgisMorImageLocalMinima->show();
}

void RsGisLibCMDMorphology::MorImageLocalMinimaComOut()
{
	rsgisMorImageLocalMinimaComOut = new RsGisLibMorImageLocalMinimaComOut(ClientPort, NULL);
	rsgisMorImageLocalMinimaComOut->show();
}

void RsGisLibCMDMorphology::MorImageOpening()
{
	rsgisMorImageOpening = new RsGisLibMorImageOpening(ClientPort, NULL);
	rsgisMorImageOpening->show();
}

void RsGisLibCMDMorphology::MorImageClosing()
{
	rsgisMorImageClosing = new RsGisLibMorImageClosing(ClientPort, NULL);
	rsgisMorImageClosing->show();
}

void RsGisLibCMDMorphology::MorImageBlackTopHat()
{
	rsgisMorImageBlackTopHat = new RsGisLibMorImageBlackTopHat(ClientPort, NULL);
	rsgisMorImageBlackTopHat->show();
}

void RsGisLibCMDMorphology::MorImageWhiteTopHat()
{
	rsgisMorImageWhiteTopHat = new RsGisLibMorImageWhiteTopHat(ClientPort, NULL);
	rsgisMorImageWhiteTopHat->show();
}